//package com.bestcem.xm.qdes.grpc.service;
//
//import com.bestcem.xm.qdes.retrofit.api.SmsApi;
//import com.bestcem.xm.sms.grpc.v1.services.SendSmsRequest;
//import com.bestcem.xm.sms.grpc.v1.services.SendSmsResponse;
//import com.bestcem.xm.sms.grpc.v1.services.SmsServiceGrpc;
//import io.grpc.stub.StreamObserver;
//import lombok.NonNull;
//import lombok.RequiredArgsConstructor;
//import lombok.extern.slf4j.Slf4j;
//import net.devh.boot.grpc.server.service.GrpcService;
//
//import java.time.LocalDateTime;
//import java.time.format.DateTimeFormatter;
//import java.util.HashMap;
//import java.util.Map;
//
///**
// * 发送邮件gRpc接口
// * 发送短信已经换成中台，这里可能就没用了
// * @author xiaoshu.shao <xiaoshu.shao@idiaoyan.com>
// * @version V1.0
// * @date 2022/8/9
// */
//@GrpcService
//@Slf4j
//@RequiredArgsConstructor
//public class SmsGrpcService extends SmsServiceGrpc.SmsServiceImplBase {
//
//    private @NonNull SmsApi smsApi;
//
//    private static final String SMS_SIGN = "【倍市得CEM】";
//
//    private static final String SUCCESS_CODE = "0";
//
//    private static final String RESULT = "result";
//
//    @Override
//    public void sendSms(SendSmsRequest request, StreamObserver<SendSmsResponse> responseObserver) {
//        SendSmsResponse.Builder response = SendSmsResponse.newBuilder();
//        //根据org_id调用get_sign_by_org接口查询'deliver_smsbalance'表中的signature字段（企业短信签名），若不存在则默认使用 SMS_SIGN
//        String sign = SMS_SIGN;
//        //同上'deliver_smsbalance'表中的code字段（账户code）
//        String code = "155";
//        //根据上面的code字段（账户code）查询sms_component表中的`ttype`（短信渠道）
//        int type = 3;
//        //通过http请求根据上面的code字段（账户code）查询sms_component表中的'account'（账户名）
//        String account = "8SDK-EMY-6699-RHXQL";
//        boolean isSuccess = false;
//        switch (type) {
//            //亿美营销
//            case 3:
//                String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
//                Map obj = new HashMap(8);
//                obj.put("appId", account);
//                obj.put("timestamp", time);
//                //需做处理
//                obj.put("sign", sign);
//                //多个手机号需用,号分隔
//                obj.put("mobiles", request.getPhone());
//                //需做处理
//                obj.put("content", request.getContent());
//                try {
//                    Map resMap = smsApi.sendSms(obj);
//                    if (SUCCESS_CODE.equals(resMap.get(RESULT))) {
//                        isSuccess = true;
//                    } else {
//                        log.error("发送短信异常：{}", resMap.get("code"));
//                    }
//                } catch (Exception e) {
//                    log.error("发送短信异常：{}", e);
//                }
//            default:
//                break;
//        }
//        response.setStatus(isSuccess ? GrpcConstant.SUCCESS_STATUS : GrpcConstant.FAIL_STATUS);
//        responseObserver.onNext(response.build());
//        responseObserver.onCompleted();
//    }
//}